import argparse
from train_all import train_model

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    default_str = 'default: %(default)s'
    parser.add_argument('--name', type=str, default='testall')
    parser.add_argument('--valid_folds', type=int, nargs='*', default=[0, ], help=default_str)
    parser.add_argument('--batchsize', type=int, default=16, help=default_str)
    parser.add_argument('--shift_range', type=int, nargs=3, default=[2, 2, 2], help=default_str)
    parser.add_argument('--crop_shape', type=int, nargs=3, default=[64, 64, 64], help=default_str)
    parser.add_argument('--seed', type=int, default=2112, help=default_str)
    parser.add_argument('--lr', type=float, default=1e-3, help=default_str)
    parser.add_argument('--lr_decay', type=float, default=0.96, help=default_str)
    parser.add_argument('--nb_epoches', type=int, default=100, help=default_str)
    parser.add_argument('--weight_decay', type=float, default=1e-5, help=default_str)
    parser.add_argument('--gpus', type=str, default='0', help=default_str)
    parser.add_argument('--include_testset', type=int, default=0, help=default_str)
    parser.add_argument('--prob_thresh', type=float, default=0.1, help=default_str)
    parser.add_argument('--candidate_file', type=str,
                        default='3dcnn_candidates_list_v9_4fold_newfold_newlabel.pkl',
                        help=default_str)
    parser.add_argument('--candidate_vol_file', type=str,
                        default='lidc_kaggle_candidates_v9.hdf5', help=default_str)
    parser.add_argument('--pretrain_model', type=str,
                        default='vgg_shortcut_lidc_pretrain',
                        help=default_str)
    parser.add_argument('--pretrain_model_epoch', type=str,
                        default='epoch-0030',
                        help=default_str)
    args = parser.parse_args()
    train_model(**vars(args))
